<?php
require_once APPPATH.'controllers/app.php';
class Calenders extends App {
    public function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->library('grocery_CRUD');
        $this->load->model('calender_model');
    }
    function index(){
        $crud = new grocery_CRUD();
        $crud->set_subject('Lịch');
        $crud->set_table('tblcalenders');
        $crud->columns('name');
        $crud->fields('name');
        $crud->required_fields('name');
        $crud->display_as('name','Tên lịch');
        $crud->add_action('Thiết lập ngày làm việc','http://localhost/pm/assets/public/img/icon/settings.png','calenders/set_day');
        $output = $crud->render();
        $output->title = "Lịch làm việc";
        $output->content_title = "Lịch";
        $output->sb = $this->_menu;
        $this->load->view('common/layout_view',$output);
    }
    function set_day($cal_id){
        // custom form not use crud
        $this->load_set_day($cal_id);
    }
    function set_day_process($cal_id){
        $this -> load -> library( 'form_validation' );
        $this -> form_validation -> set_error_delimiters("<div class='notification error'><div class='messages'>","<div class='close'><img alt='close' src='".base_url()."assets/public/img/icon/close.png'></div></div> </div>");
        $this -> form_validation -> set_rules( 'begin', 'Thời gian bắt đầu', 'trim|callback_check_begin');
        $this -> form_validation -> set_rules( 'end', 'Thời gian kết thúc', 'trim|callback_check_end|callback_compare_time');  
        $this->form_validation->set_message('check_begin','Thời gian bắt đầu sai định dạng');
        $this->form_validation->set_message('check_end','Thời gian kết thúc sai định dạng');
        $this->form_validation->set_message('compare_time','Thời gian kết thúc phải lớn hơn thời gian bắt đầu');
         if($this->form_validation->run()==FALSE){
            $this->load_set_day($cal_id);
         }else{
            $id = $this->input->post('id');
            $days = $this->input->post('days');
            $begin = convert_hour_to_float($this->input->post('begin'));
            $end = convert_hour_to_float($this->input->post('end'));
            $this->calender_model->set_days($id,$days,$begin,$end);
            $this->load_set_day($cal_id);
         }
    }
    function load_set_day($cal_id){
        // Lấy thời gian làm việc và sắp xếp lại
        $arr = $this->calender_model->get_cal($cal_id);
        $cls = array(null,null);
        for($i=2;$i<=7;$i++){
            $cl = array();
            foreach ($arr as $key=>$a) {
                if($a['day']==$i){
                    $cl[] = $a;
                    unset ($arr[$key]);
                }
            }
            $cls[$i] = $cl;
        }
        if(isset ($arr[0])){
            if($arr[0]['day']==0){
            $cls[0] = $arr[0];
        }
        }
        /**print "<pre>";
        print_r($cls);
        print "</pre>"; **/
        $data['title'] = "Thiết lập ngày làm việc ".$this->calender_model->get_name('1');
        $data['css_files'] = array();
        $data['js_files'] = array();
        $data['sb'] = $this->_menu;
        $data['content_title'] = "Thiết lập ngày giờ làm việc ".$this->calender_model->get_name($cal_id);
        $data['cals'] = $cls;
        $data['cal_id'] = $cal_id;
        //$data['output'] = "haha";
        $this->load->view('calender/calender_setting_view',$data); 
    }

    function check_begin($_begin){
       if ( preg_match('/^(0[1-9]|1[0-9]|[1-9]|2[0-3]):(0[1-9]|[1-5][0-9]|[1-9]|00)$/', $_begin) ) {
            return true;
         } else {
              return false;
         }
    }
    function check_end($_end){
        if ( preg_match('/^(0[1-9]|1[0-9]|[1-9]|2[0-3]):(0[1-9]|[1-5][0-9]|[1-9]|00)$/', $_end) ) {
            return true;
         } else {
              return false;
         }
    }
    function compare_time($_end){
        $begin = $this->input->post('begin');
        if(strtotime($_end)>  strtotime($begin)){
            return true;
        }else return false;
    }
}
?>
